package practise;

public class Test {
    public static void main(String[] args) throws CloneNotSupportedException {
        Bank bank1 = new Bank("长沙银行","雨花区香樟路21号",20);
        Bank bank2 = (Bank)bank1.clone();
        //浅拷贝
        /**
         * 可观察到的现象：
         *      当我对修改bank1对象的money.count时，bank2的值也随之变化
         *      这说明bank1 和 bank2 对象所指向的是同一个money对象*/
//        System.out.println(bank1);
//        System.out.println(bank2);
//        System.out.println("==============");
//        bank1.money.count = 30;
//        System.out.println(bank1);
//        System.out.println(bank2);


        //深拷贝
        /**
         * 可观察到的现象：
         *      当我修改bank1对象的money.count 时，bank3 的值不受影响
         *      这是因为bank1 和 bank3 分别指向的是两个不同的money对象*/
        Bank bank3 = (Bank)bank1.clone();
        bank3.money = (Money) bank1.money.clone();
        System.out.println(bank1);
        System.out.println(bank3);
        System.out.println("========");
        bank1.money.count = 30;
        System.out.println(bank1);
        System.out.println(bank3);
    }
}
